package com.ruoyi.system.dao.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.system.dao.IUserTagsRelDao;
import com.ruoyi.system.domain.UserTagsRel;
import com.ruoyi.system.mapper.UserTagsRelMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;

/**
 * 用户标签关系Dao实现类
 *
 * @author 区嘉盛
 */
@Repository
public class UserTagsRelDaoImpl extends ServiceImpl<UserTagsRelMapper, UserTagsRel> implements IUserTagsRelDao {

    @Autowired
    private UserTagsRelMapper userTagsRelMapper;

    /**
     * 更新用户标签关系
     *
     * @param userId 用户ID
     * @param tagIds 标签ID数组
     * @return 结果
     */
    @Override
    public int updateUserTags(Long userId, Long[] tagIds) {
        // 先删除用户所有标签关系
        userTagsRelMapper.deleteUserTagsRelByUserId(userId);

        // 如果有新的标签，则添加关系
        if (tagIds != null && tagIds.length > 0) {
            List<UserTagsRel> list = new ArrayList<>();
            for (Long tagId : tagIds) {
                UserTagsRel rel = new UserTagsRel();
                rel.setUserId(userId);
                rel.setTagId(tagId);
                rel.setCreatedTime(LocalDateTime.now());
                list.add(rel);
            }
            return userTagsRelMapper.batchInsertUserTagsRel(list);
        }
        return 0;
    }
}